package org.meetunexpectedly.service.user;

import com.baomidou.mybatisplus.extension.service.IService;
import org.meetunexpectedly.entity.user.Follow;
import org.meetunexpectedly.entity.vo.BasePage;

import java.util.Collection;

/**
 * @Description: 关注服务接口
 * @Author: pupil
 * @Date: 2024/08/11 下午 8:54
 */
public interface FollowService extends IService<Follow> {
    /**
     * 查出关注数量
     *
     * @param userId 粉丝id(用户id)
     * @return
     */
    int getFollowsCount(Long userId);

    /**
     * 查出粉丝数量
     *
     * @param userId 关注id(用户id)
     * @return
     */
    int getFansCount(Long userId);

    /**
     * 获取粉丝人员且按照关注时间排序
     *
     * @param basePage 分页信息
     * @param userId   用户id
     * @return
     */
    Collection<Long> getFans(BasePage basePage, Long userId);

    /**
     * 获取关注人员且按照关注时间排序
     *
     * @param basePage 分页信息
     * @param userId   用户id
     * @return
     */
    Collection<Long> getFollows(BasePage basePage, Long userId);

    /**
     * 关注/取关
     *
     * @param userId        用户id
     * @param followsUserId 关注人员id
     * @return
     */
    Boolean follows(Long userId, Long followsUserId);

    /**
     * userId 是否关注 followId
     *
     * @param followId
     * @param userId
     * @return
     */
    Boolean isFollows(Long followId, Long userId);
}
